package com.wing.order.model.response;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wing.order.model.entity.InventoryJob;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 出/入库作业单记录VO
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class InventoryJobVO {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss" )
    private LocalDateTime createTime;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    private String remark;

    /**
     * 出/入库作业单编号
     */
    private String code;

    /**
     * 出入库计划id
     */
    private Long planId;

    /**
     * 出入库类型
     */
    private InventoryJob.InoutType inoutType;

    /**
    * 出入库类型描述
    */
    @TableField(exist = false)
    private String inoutTypeDesc;

    public String getInoutTypeDesc() {
        return inoutType.getDesc();
    }

    /**
     * 发货商
     */
    private String customerName;

    /**
     * 客户联系人
     */
    private String customerConcat;

    /**
     * 联系人电话
     */
    private String customerMoble;

    /**
     * 车牌号
     */
    private String carNo;

    /**
     * 物流单号
     */
    private String expressCode;

    /**
     * 物流企业id
     */
    private Long companyId;

    /**
     * 运输方式
     */
    private InventoryJob.TransportType transportType;

    /**
    * 运输方式描述
    */
    @TableField(exist = false)
    private String transportTypeDesc;

    public String getTransportTypeDesc() {
        return transportType == null ? null : transportType.getDesc();
    }

    /**
     * 省
     */
    private Long province;

    /**
     * 市
     */
    private Long city;

    /**
     * 目标仓库
     */
    private Long inWarehouseId;
    /**
     * 目标仓库名称
     */
    private String inWarehouseName;
    /**
     * 出库产品数据
     */
    private String productJson;
    /**
     * 包装条码数据
     */
    private String productPackLabeJson;
    /**
     * 出库计划描述
     */
    private String planRemark;
    /**
     * 物流企业
     */
    private String logistics;

}
